Skip to content

Conversation

@dougqh
Copy link
Contributor

@dougqh dougqh commented Jan 12, 2026

What Does This Do

Introduces EntryReader as a low allocation means to traverse either a LegacyTagMap or an OptimizedTagMap
TagMap now extends Iterable<EntryReader> rather than Iterable<Entry>

Motivation

EntryReader provides a way to traverse a map with minimal allocation - avoiding the need to create specialized code that is optimal for each map type

In a future change, this capability will be used in the serializers to reduce overhead for OptimizedTagMap without introducing two pieces of code to maintain (one for each map)

Additional Notes

LegacyTagMap reuses a EntryReadingHelper which is updating each time the Iterator advances or the Entry changes in a forEach method. EntryReadingHelper uses TagValueConversions to help unbox / convert objects as needed.

OptimizedTagMap continues to pass the Entry object directly, since Entry objects are EntryReaders.

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@dougqh dougqh requested a review from a team as a code owner January 12, 2026 21:09
@dougqh dougqh requested a review from smola January 12, 2026 21:09
@github-actions
Copy link
Contributor

github-actions bot commented Jan 12, 2026

Hi! 👋 Thanks for your pull request! 🎉

To help us review it, please make sure to:

  • Add at least one type, and one component or instrumentation label to the pull request

If you need help, please check our contributing guidelines.

@dougqh dougqh added comp: core Tracer core type: enhancement Enhancements and improvements labels Jan 12, 2026
@dougqh dougqh changed the title Dougqh/tagmap entryreader Introducing TagMap EntryReader Jan 12, 2026
@pr-commenter
Copy link

pr-commenter bot commented Jan 12, 2026

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master dougqh/tagmap-entryreader
git_commit_date 1768929215 1768936612
git_commit_sha 25a3dc3 5698bff
release_version 1.59.0-SNAPSHOT~25a3dc370c 1.59.0-SNAPSHOT~5698bff9b7
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1768938437 1768938437
ci_job_id 1363244661 1363244661
ci_pipeline_id 91724371 91724371
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-55bccmqh 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-55bccmqh 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 57 metrics, 8 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.59.0-SNAPSHOT~5698bff9b7, baseline=1.59.0-SNAPSHOT~25a3dc370c

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.089 s) : 0, 1088858
Total [baseline] (8.801 s) : 0, 8800959
Agent [candidate] (1.097 s) : 0, 1097477
Total [candidate] (8.893 s) : 0, 8892753
section iast
Agent [baseline] (1.227 s) : 0, 1226603
Total [baseline] (9.371 s) : 0, 9371482
Agent [candidate] (1.232 s) : 0, 1232092
Total [candidate] (9.407 s) : 0, 9407312
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.089 s -
Agent iast 1.227 s 137.746 ms (12.7%)
Total tracing 8.801 s -
Total iast 9.371 s 570.522 ms (6.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.097 s -
Agent iast 1.232 s 134.614 ms (12.3%)
Total tracing 8.893 s -
Total iast 9.407 s 514.559 ms (5.8%)
gantt
    title insecure-bank - break down per module: candidate=1.59.0-SNAPSHOT~5698bff9b7, baseline=1.59.0-SNAPSHOT~25a3dc370c

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.2 ms) : 0, 1200
crashtracking [candidate] (1.2 ms) : 0, 1200
BytebuddyAgent [baseline] (655.075 ms) : 0, 655075
BytebuddyAgent [candidate] (660.058 ms) : 0, 660058
GlobalTracer [baseline] (283.602 ms) : 0, 283602
GlobalTracer [candidate] (286.085 ms) : 0, 286085
AppSec [baseline] (32.545 ms) : 0, 32545
AppSec [candidate] (32.941 ms) : 0, 32941
Debugger [baseline] (67.171 ms) : 0, 67171
Debugger [candidate] (67.66 ms) : 0, 67660
Remote Config [baseline] (634.835 µs) : 0, 635
Remote Config [candidate] (634.711 µs) : 0, 635
Telemetry [baseline] (9.034 ms) : 0, 9034
Telemetry [candidate] (9.112 ms) : 0, 9112
Flare Poller [baseline] (3.843 ms) : 0, 3843
Flare Poller [candidate] (3.906 ms) : 0, 3906
section iast
crashtracking [baseline] (1.191 ms) : 0, 1191
crashtracking [candidate] (1.209 ms) : 0, 1209
BytebuddyAgent [baseline] (793.598 ms) : 0, 793598
BytebuddyAgent [candidate] (798.568 ms) : 0, 798568
GlobalTracer [baseline] (257.213 ms) : 0, 257213
GlobalTracer [candidate] (257.154 ms) : 0, 257154
IAST [baseline] (27.064 ms) : 0, 27064
IAST [candidate] (26.902 ms) : 0, 26902
AppSec [baseline] (34.587 ms) : 0, 34587
AppSec [candidate] (32.964 ms) : 0, 32964
Debugger [baseline] (64.859 ms) : 0, 64859
Debugger [candidate] (66.916 ms) : 0, 66916
Remote Config [baseline] (578.054 µs) : 0, 578
Remote Config [candidate] (572.555 µs) : 0, 573
Telemetry [baseline] (8.401 ms) : 0, 8401
Telemetry [candidate] (8.489 ms) : 0, 8489
Flare Poller [baseline] (3.57 ms) : 0, 3570
Flare Poller [candidate] (3.615 ms) : 0, 3615
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.59.0-SNAPSHOT~5698bff9b7, baseline=1.59.0-SNAPSHOT~25a3dc370c

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.085 s) : 0, 1085321
Total [baseline] (10.866 s) : 0, 10865783
Agent [candidate] (1.087 s) : 0, 1086681
Total [candidate] (10.782 s) : 0, 10781603
section appsec
Agent [baseline] (1.269 s) : 0, 1269085
Total [baseline] (11.132 s) : 0, 11131815
Agent [candidate] (1.273 s) : 0, 1273016
Total [candidate] (11.006 s) : 0, 11005762
section iast
Agent [baseline] (1.226 s) : 0, 1226034
Total [baseline] (11.187 s) : 0, 11187489
Agent [candidate] (1.223 s) : 0, 1223153
Total [candidate] (11.153 s) : 0, 11152547
section profiling
Agent [baseline] (1.206 s) : 0, 1206072
Total [baseline] (10.907 s) : 0, 10906568
Agent [candidate] (1.212 s) : 0, 1211895
Total [candidate] (10.994 s) : 0, 10993917
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.085 s -
Agent appsec 1.269 s 183.764 ms (16.9%)
Agent iast 1.226 s 140.713 ms (13.0%)
Agent profiling 1.206 s 120.751 ms (11.1%)
Total tracing 10.866 s -
Total appsec 11.132 s 266.032 ms (2.4%)
Total iast 11.187 s 321.706 ms (3.0%)
Total profiling 10.907 s 40.785 ms (0.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.087 s -
Agent appsec 1.273 s 186.336 ms (17.1%)
Agent iast 1.223 s 136.473 ms (12.6%)
Agent profiling 1.212 s 125.214 ms (11.5%)
Total tracing 10.782 s -
Total appsec 11.006 s 224.159 ms (2.1%)
Total iast 11.153 s 370.943 ms (3.4%)
Total profiling 10.994 s 212.313 ms (2.0%)
gantt
    title petclinic - break down per module: candidate=1.59.0-SNAPSHOT~5698bff9b7, baseline=1.59.0-SNAPSHOT~25a3dc370c

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.175 ms) : 0, 1175
crashtracking [candidate] (1.181 ms) : 0, 1181
BytebuddyAgent [baseline] (651.52 ms) : 0, 651520
BytebuddyAgent [candidate] (652.664 ms) : 0, 652664
GlobalTracer [baseline] (282.924 ms) : 0, 282924
GlobalTracer [candidate] (283.484 ms) : 0, 283484
AppSec [baseline] (32.549 ms) : 0, 32549
AppSec [candidate] (32.621 ms) : 0, 32621
Debugger [baseline] (68.237 ms) : 0, 68237
Debugger [candidate] (67.748 ms) : 0, 67748
Remote Config [baseline] (648.001 µs) : 0, 648
Remote Config [candidate] (630.681 µs) : 0, 631
Telemetry [baseline] (8.934 ms) : 0, 8934
Telemetry [candidate] (8.959 ms) : 0, 8959
Flare Poller [baseline] (3.812 ms) : 0, 3812
Flare Poller [candidate] (3.798 ms) : 0, 3798
section appsec
crashtracking [baseline] (1.18 ms) : 0, 1180
crashtracking [candidate] (1.209 ms) : 0, 1209
BytebuddyAgent [baseline] (692.709 ms) : 0, 692709
BytebuddyAgent [candidate] (696.405 ms) : 0, 696405
GlobalTracer [baseline] (259.514 ms) : 0, 259514
GlobalTracer [candidate] (260.427 ms) : 0, 260427
IAST [baseline] (24.436 ms) : 0, 24436
IAST [candidate] (24.854 ms) : 0, 24854
AppSec [baseline] (172.393 ms) : 0, 172393
AppSec [candidate] (174.718 ms) : 0, 174718
Debugger [baseline] (69.314 ms) : 0, 69314
Debugger [candidate] (65.983 ms) : 0, 65983
Remote Config [baseline] (791.74 µs) : 0, 792
Remote Config [candidate] (764.115 µs) : 0, 764
Telemetry [baseline] (9.43 ms) : 0, 9430
Telemetry [candidate] (9.295 ms) : 0, 9295
Flare Poller [baseline] (3.795 ms) : 0, 3795
Flare Poller [candidate] (3.717 ms) : 0, 3717
section iast
crashtracking [baseline] (1.181 ms) : 0, 1181
crashtracking [candidate] (1.181 ms) : 0, 1181
BytebuddyAgent [baseline] (793.287 ms) : 0, 793287
BytebuddyAgent [candidate] (791.139 ms) : 0, 791139
GlobalTracer [baseline] (256.29 ms) : 0, 256290
GlobalTracer [candidate] (255.679 ms) : 0, 255679
IAST [baseline] (26.988 ms) : 0, 26988
IAST [candidate] (26.968 ms) : 0, 26968
AppSec [baseline] (34.474 ms) : 0, 34474
AppSec [candidate] (34.243 ms) : 0, 34243
Debugger [baseline] (65.769 ms) : 0, 65769
Debugger [candidate] (65.888 ms) : 0, 65888
Remote Config [baseline] (556.682 µs) : 0, 557
Remote Config [candidate] (593.95 µs) : 0, 594
Telemetry [baseline] (8.405 ms) : 0, 8405
Telemetry [candidate] (8.439 ms) : 0, 8439
Flare Poller [baseline] (3.567 ms) : 0, 3567
Flare Poller [candidate] (3.555 ms) : 0, 3555
section profiling
crashtracking [baseline] (1.207 ms) : 0, 1207
crashtracking [candidate] (1.206 ms) : 0, 1206
BytebuddyAgent [baseline] (701.31 ms) : 0, 701310
BytebuddyAgent [candidate] (705.664 ms) : 0, 705664
GlobalTracer [baseline] (221.349 ms) : 0, 221349
GlobalTracer [candidate] (223.486 ms) : 0, 223486
AppSec [baseline] (32.604 ms) : 0, 32604
AppSec [candidate] (32.572 ms) : 0, 32572
Debugger [baseline] (68.569 ms) : 0, 68569
Debugger [candidate] (68.305 ms) : 0, 68305
Remote Config [baseline] (644.12 µs) : 0, 644
Remote Config [candidate] (658.092 µs) : 0, 658
Telemetry [baseline] (8.946 ms) : 0, 8946
Telemetry [candidate] (9.074 ms) : 0, 9074
Flare Poller [baseline] (3.8 ms) : 0, 3800
Flare Poller [candidate] (3.793 ms) : 0, 3793
ProfilingAgent [baseline] (97.768 ms) : 0, 97768
ProfilingAgent [candidate] (97.131 ms) : 0, 97131
Profiling [baseline] (98.345 ms) : 0, 98345
Profiling [candidate] (97.712 ms) : 0, 97712
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master dougqh/tagmap-entryreader
git_commit_date 1768929215 1768936612
git_commit_sha 25a3dc3 5698bff
release_version 1.59.0-SNAPSHOT~25a3dc370c 1.59.0-SNAPSHOT~5698bff9b7
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1768938950 1768938950
ci_job_id 1363244662 1363244662
ci_pipeline_id 91724371 91724371
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-8ivu7n0g 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-8ivu7n0g 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 0 performance improvements and 2 performance regressions! Performance is the same for 15 metrics, 19 unstable metrics.

scenario Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p95 Δ mean throughput candidate mean agg_http_req_duration_p50 candidate mean agg_http_req_duration_p95 candidate mean throughput baseline mean agg_http_req_duration_p50 baseline mean agg_http_req_duration_p95 baseline mean throughput
scenario:load:insecure-bank:profiling:high_load worse
[+50.987µs; +167.166µs] or [+3.160%; +10.359%]
unstable
[+445.678µs; +1236.558µs] or [+10.146%; +28.151%]
unstable
[-497.139op/s; +1.952op/s] or [-21.480%; +0.084%]
1.723ms 5.234ms 2066.812op/s 1.614ms 4.393ms 2314.406op/s
scenario:load:insecure-bank:iast_GLOBAL:high_load worse
[+93.007µs; +201.592µs] or [+3.332%; +7.222%]
unstable
[-45.670µs; +770.079µs] or [-0.576%; +9.710%]
unstable
[-194.103op/s; +78.790op/s] or [-15.012%; +6.094%]
2.939ms 8.293ms 1235.344op/s 2.791ms 7.931ms 1293.000op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.59.0-SNAPSHOT~5698bff9b7, baseline=1.59.0-SNAPSHOT~25a3dc370c
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.165 ms) : 1154, 1176
.   : milestone, 1165,
iast (3.157 ms) : 3112, 3203
.   : milestone, 3157,
iast_FULL (5.867 ms) : 5808, 5927
.   : milestone, 5867,
iast_GLOBAL (3.544 ms) : 3493, 3595
.   : milestone, 3544,
profiling (1.948 ms) : 1931, 1964
.   : milestone, 1948,
tracing (1.802 ms) : 1786, 1817
.   : milestone, 1802,
section candidate
no_agent (1.189 ms) : 1177, 1200
.   : milestone, 1189,
iast (3.15 ms) : 3107, 3194
.   : milestone, 3150,
iast_FULL (5.77 ms) : 5713, 5827
.   : milestone, 5770,
iast_GLOBAL (3.715 ms) : 3650, 3780
.   : milestone, 3715,
profiling (2.189 ms) : 2169, 2209
.   : milestone, 2189,
tracing (1.836 ms) : 1820, 1852
.   : milestone, 1836,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.165 ms [1.154 ms, 1.176 ms] -
iast 3.157 ms [3.112 ms, 3.203 ms] 1.992 ms (171.0%)
iast_FULL 5.867 ms [5.808 ms, 5.927 ms] 4.702 ms (403.6%)
iast_GLOBAL 3.544 ms [3.493 ms, 3.595 ms] 2.38 ms (204.3%)
profiling 1.948 ms [1.931 ms, 1.964 ms] 782.935 µs (67.2%)
tracing 1.802 ms [1.786 ms, 1.817 ms] 636.895 µs (54.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.189 ms [1.177 ms, 1.2 ms] -
iast 3.15 ms [3.107 ms, 3.194 ms] 1.962 ms (165.1%)
iast_FULL 5.77 ms [5.713 ms, 5.827 ms] 4.581 ms (385.5%)
iast_GLOBAL 3.715 ms [3.65 ms, 3.78 ms] 2.526 ms (212.6%)
profiling 2.189 ms [2.169 ms, 2.209 ms] 1.001 ms (84.2%)
tracing 1.836 ms [1.82 ms, 1.852 ms] 647.382 µs (54.5%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.59.0-SNAPSHOT~5698bff9b7, baseline=1.59.0-SNAPSHOT~25a3dc370c
    dateFormat X
    axisFormat %s
section baseline
no_agent (18.274 ms) : 18086, 18462
.   : milestone, 18274,
appsec (18.484 ms) : 18300, 18668
.   : milestone, 18484,
code_origins (17.794 ms) : 17617, 17972
.   : milestone, 17794,
iast (17.728 ms) : 17550, 17907
.   : milestone, 17728,
profiling (18.53 ms) : 18348, 18713
.   : milestone, 18530,
tracing (17.549 ms) : 17375, 17724
.   : milestone, 17549,
section candidate
no_agent (18.166 ms) : 17979, 18353
.   : milestone, 18166,
appsec (18.883 ms) : 18695, 19072
.   : milestone, 18883,
code_origins (17.872 ms) : 17694, 18051
.   : milestone, 17872,
iast (17.77 ms) : 17595, 17946
.   : milestone, 17770,
profiling (18.909 ms) : 18716, 19103
.   : milestone, 18909,
tracing (17.395 ms) : 17224, 17566
.   : milestone, 17395,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 18.274 ms [18.086 ms, 18.462 ms] -
appsec 18.484 ms [18.3 ms, 18.668 ms] 209.735 µs (1.1%)
code_origins 17.794 ms [17.617 ms, 17.972 ms] -479.94 µs (-2.6%)
iast 17.728 ms [17.55 ms, 17.907 ms] -545.969 µs (-3.0%)
profiling 18.53 ms [18.348 ms, 18.713 ms] 256.119 µs (1.4%)
tracing 17.549 ms [17.375 ms, 17.724 ms] -725.149 µs (-4.0%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 18.166 ms [17.979 ms, 18.353 ms] -
appsec 18.883 ms [18.695 ms, 19.072 ms] 717.34 µs (3.9%)
code_origins 17.872 ms [17.694 ms, 18.051 ms] -293.716 µs (-1.6%)
iast 17.77 ms [17.595 ms, 17.946 ms] -395.983 µs (-2.2%)
profiling 18.909 ms [18.716 ms, 19.103 ms] 743.374 µs (4.1%)
tracing 17.395 ms [17.224 ms, 17.566 ms] -771.433 µs (-4.2%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master dougqh/tagmap-entryreader
git_commit_date 1768929215 1768936612
git_commit_sha 25a3dc3 5698bff
release_version 1.59.0-SNAPSHOT~25a3dc370c 1.59.0-SNAPSHOT~5698bff9b7
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1768938662 1768938662
ci_job_id 1363244663 1363244663
ci_pipeline_id 91724371 91724371
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-8d2dj3p6 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-8d2dj3p6 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 1 unstable metrics.

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.59.0-SNAPSHOT~5698bff9b7, baseline=1.59.0-SNAPSHOT~25a3dc370c
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.944 s) : 14944000, 14944000
.   : milestone, 14944000,
appsec (14.591 s) : 14591000, 14591000
.   : milestone, 14591000,
iast (18.413 s) : 18413000, 18413000
.   : milestone, 18413000,
iast_GLOBAL (17.82 s) : 17820000, 17820000
.   : milestone, 17820000,
profiling (14.933 s) : 14933000, 14933000
.   : milestone, 14933000,
tracing (14.735 s) : 14735000, 14735000
.   : milestone, 14735000,
section candidate
no_agent (15.687 s) : 15687000, 15687000
.   : milestone, 15687000,
appsec (14.829 s) : 14829000, 14829000
.   : milestone, 14829000,
iast (18.208 s) : 18208000, 18208000
.   : milestone, 18208000,
iast_GLOBAL (17.697 s) : 17697000, 17697000
.   : milestone, 17697000,
profiling (15.02 s) : 15020000, 15020000
.   : milestone, 15020000,
tracing (14.604 s) : 14604000, 14604000
.   : milestone, 14604000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.944 s [14.944 s, 14.944 s] -
appsec 14.591 s [14.591 s, 14.591 s] -353.0 ms (-2.4%)
iast 18.413 s [18.413 s, 18.413 s] 3.469 s (23.2%)
iast_GLOBAL 17.82 s [17.82 s, 17.82 s] 2.876 s (19.2%)
profiling 14.933 s [14.933 s, 14.933 s] -11.0 ms (-0.1%)
tracing 14.735 s [14.735 s, 14.735 s] -209.0 ms (-1.4%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.687 s [15.687 s, 15.687 s] -
appsec 14.829 s [14.829 s, 14.829 s] -858.0 ms (-5.5%)
iast 18.208 s [18.208 s, 18.208 s] 2.521 s (16.1%)
iast_GLOBAL 17.697 s [17.697 s, 17.697 s] 2.01 s (12.8%)
profiling 15.02 s [15.02 s, 15.02 s] -667.0 ms (-4.3%)
tracing 14.604 s [14.604 s, 14.604 s] -1.083 s (-6.9%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.59.0-SNAPSHOT~5698bff9b7, baseline=1.59.0-SNAPSHOT~25a3dc370c
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.475 ms) : 1463, 1486
.   : milestone, 1475,
appsec (3.631 ms) : 3417, 3846
.   : milestone, 3631,
iast (2.216 ms) : 2151, 2281
.   : milestone, 2216,
iast_GLOBAL (2.259 ms) : 2193, 2325
.   : milestone, 2259,
profiling (2.062 ms) : 2010, 2115
.   : milestone, 2062,
tracing (2.041 ms) : 1990, 2092
.   : milestone, 2041,
section candidate
no_agent (1.473 ms) : 1461, 1484
.   : milestone, 1473,
appsec (3.661 ms) : 3446, 3876
.   : milestone, 3661,
iast (2.21 ms) : 2145, 2275
.   : milestone, 2210,
iast_GLOBAL (2.26 ms) : 2194, 2325
.   : milestone, 2260,
profiling (2.057 ms) : 2005, 2109
.   : milestone, 2057,
tracing (2.045 ms) : 1994, 2096
.   : milestone, 2045,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.475 ms [1.463 ms, 1.486 ms] -
appsec 3.631 ms [3.417 ms, 3.846 ms] 2.156 ms (146.2%)
iast 2.216 ms [2.151 ms, 2.281 ms] 741.104 µs (50.3%)
iast_GLOBAL 2.259 ms [2.193 ms, 2.325 ms] 784.139 µs (53.2%)
profiling 2.062 ms [2.01 ms, 2.115 ms] 587.418 µs (39.8%)
tracing 2.041 ms [1.99 ms, 2.092 ms] 566.16 µs (38.4%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.473 ms [1.461 ms, 1.484 ms] -
appsec 3.661 ms [3.446 ms, 3.876 ms] 2.189 ms (148.6%)
iast 2.21 ms [2.145 ms, 2.275 ms] 736.914 µs (50.0%)
iast_GLOBAL 2.26 ms [2.194 ms, 2.325 ms] 786.885 µs (53.4%)
profiling 2.057 ms [2.005 ms, 2.109 ms] 584.182 µs (39.7%)
tracing 2.045 ms [1.994 ms, 2.096 ms] 572.095 µs (38.8%)

* <li>adaptive collision
* </ul>
*/
public interface TagMap extends Map<String, Object>, Iterable<TagMap.Entry> {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Entry now implements EntryReader, so the updates to code using TagMap are trivial

/**
* Visits each Entry in this TagMap This method is more efficient than {@link TagMap#iterator()}
*/
void forEach(Consumer<? super TagMap.Entry> consumer);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Entry now implements EntryReader
And since forEach is primarily used with a lambda and type inferencing, this is often source compatible with existing callers

Fixed bug TagValueConversions.toBoolean
Could cause LegacyTagMap.EntryReader to produce incorrect answers to some queries

For simplicity, now treating Byte and Short as Integer.  That will make calling code doing primitive handling simpler.

Fleshing out tests -- more tests to come
Coverage for byte, short, float, and double
@bric3 bric3 self-requested a review January 21, 2026 14:37
/*
* Numeric constants - deliberately arranged to allow for checking by using type >= BYTE
*/
public static final byte BYTE = 4;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently, don't expose ability to construct BYTE and SHORT entries, so I've decided to hide these and treat them at INT.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: core Tracer core type: enhancement Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants